1. Field of the Invention
The invention relates to integrated circuits and, more particularly, to interchangeable integrated circuit building blocks.
2. Related Art
An integrated circuit building block is a computer-based blueprint for fabricating functionality in an integrated circuit, such as a CMOS circuit. An integrated circuit building block typically includes mask information for fabricating the circuit, and associated area, size, and pin information.
During a front end portion of a design process, hardware design language (“HDL”) source code is converted to integrated circuit building blocks and interconnections. During a back-end portion of the design process, the integrated circuit building blocks are placed and routed in a design layout. The design layout is analyzed to determine if it meets design criteria, such as timing and/or power consumption requirements. If design criteria are not sufficiently attained, the design is revised. For example, when a path through a series of interconnected integrated circuit building blocks does not meet timing requirements (i.e., a critical timing path), one or more of the integrated circuit building blocks within the path can be replaced with functionally equivalent, but faster components.
In conventional systems, functionally equivalent integrated circuit building blocks having different operating characteristics, have different footprints (i.e., different place and route footprints and different metal, polysilicon, and/or diffusion layer footprints). Thus, the integrated circuit building blocks are not easily interchanged. Instead, a number of surrounding integrated circuit building blocks typically have to be interchanged, re-placed, and re-routed. This often involves an iterative refinement process between the front-end and back-end processes. This consumes time and computational resources, sometimes taking days, weeks, or months.
What is needed, therefore, is a method and system for interchanging functionally equivalent integrated circuit building blocks having different operating characteristics, without having to re-place and re-route. What is also needed is a method and system for interchanging integrated circuit building blocks on a building block by building block basis, without having to re-place and re-route.